{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# `size_t`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "{data}`size_t` 是 C++ 中的一种数据类型，表示无符号整数。它通常用于表示内存块的大小、文件大小、字符串长度等需要使用无符号整数进行计算的场景。\n",
    "\n",
    "{data}`size_t` 类型的取值范围通常是 $0$ 到 $2^{64}-1$，这意味着它可以表示非常大的数值。在实际编程中，通常不需要处理这么大的数值，因此可以使用 {data}`int` 类型来代替 {data}`size_t` 类型。但是，如果需要处理非常大的数值，或者需要保证程序的正确性，那么使用 {data}`size_t` 类型会更加安全和可靠。\n",
    "\n",
    "\n",
    "```{tip}\n",
    "{data}`size_t` 类型通常被用作指针类型或数组类型的元素类型，因为它可以表示指针或数组的大小。\n",
    "```\n",
    "\n",
    "例如，下面的代码定义了指向 `char` 类型数组的指针："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "vscode": {
     "languageId": "c++"
    }
   },
   "outputs": [],
   "source": [
    "char* ptr = new char[10];"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在这个例子中，`ptr` 是指向 `char` 类型数组的指针，它的类型是 `char*`，而 `char*` 的类型是 {data}`size_t`。因此，`ptr` 可以存储指向 `char` 类型数组的地址，这个地址的长度就是该数组的大小，也就是 {data}`size_t` 类型。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "vscode": {
     "languageId": "c++"
    }
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "C++14",
   "language": "C++14",
   "name": "xcpp14"
  },
  "language_info": {
   "codemirror_mode": "text/x-c++src",
   "file_extension": ".cpp",
   "mimetype": "text/x-c++src",
   "name": "C++14",
   "version": "14"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
